package com.example.cachedemo;

import android.content.Context;
import android.os.Environment;
import java.io.File;

public final class FileUtil {
    /**
     *
     * @param context     上下文
     * @param uniqueName  名字
     * @return
     */
    public static File getCacheDirectory(Context context, String uniqueName) {
        // 获取cache目录，优先使用SD卡
        String cachePath;
        boolean isExternal = (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
                || !Environment.isExternalStorageRemovable());
        if (isExternal) {
            // SD卡存在或者不可被移除时，使用外部存储
            // cachePath = /sdcard/Android/data/<application package>/cache
            cachePath = context.getExternalCacheDir().getPath();
        } else {
            // SD卡不可用，使用内部存储
            // cachePath = /data/data/<application package>/cache
            cachePath = context.getCacheDir().getPath();
        }

        // 创建目录
        File directory = new File(cachePath + File.separator + uniqueName);

        //如果不存在,创建目录
        if (!directory.exists()) {
            directory.mkdir();
        }

        return  directory;
    }
}
